package org.eerbaar.parser.core;

import org.eerbaar.parser.core.def.NonTerminal;
import org.eerbaar.parser.core.def.NonTerminalProduction;
import org.eerbaar.parser.core.def.Symbol;
import org.eerbaar.parser.core.def.TerminalProduction;


public interface Grammar {

    void addNonTerminalProduction(Symbol lhs, Symbol[] rhs);

    void addTerminalProduction(Symbol lhs, Symbol rhs);

    NonTerminalProduction[] getNonTerminalProductions();

    NonTerminal[] getNonTerminals();

    TerminalProduction[] getTerminalProductions();

}